/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package kernel;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

class renta {
     int ID;
     String kundenid;
     String fahrzeugid;
     String vertragsdatum;
     String verleihdatum;
     String ruckgabedatum;
     String freikilometer;
     String preis;
     String bezahlstatus;
     String zahlart;
     String ersteller;

    public renta(int NID,String kid,String fid,String vd,String vld,String rd, String fkm,String pr,String bs, String za,String er){
       ID=NID; kundenid=kid;fahrzeugid=fid;vertragsdatum=vd;verleihdatum=vld;ruckgabedatum=rd;freikilometer=fkm;preis=pr;bezahlstatus=bs;zahlart=za;ersteller=er;
    }
}
/**
 *
 * @author corentinjezequel
 */
public class Rental {
    @SuppressWarnings("empty-statement")
 public static String[][] searchrent(String arg1,String arg2){
        Connection conn = null; //initialisation de la connexion

        ArrayList <renta>verleih;
        String rentals[][] = null;
        try {
            conn=kernel.ConnectDB.ConnectDB();

            //  set the in param

            CallableStatement stmt;
            stmt=conn.prepareCall("call SEARCH_RENT(?,?)");

            stmt.setString(1,arg1);
            stmt.setString(2,arg2);
            ResultSet rs = stmt.executeQuery();
            //set the out param
            int Integer=0;

int i=0;
            verleih = new ArrayList <renta>();
            while (rs.next( )){
                verleih.add(new renta(rs.getInt("verleihid"),rs.getString("kundenid"),rs.getString("fahrzeugid"),rs.getString("vertragsdatum").toString(),rs.getString("verleihdatum").toString(),rs.getString("rueckgabedatum"),rs.getString("freikilometer"),rs.getString("preis"),rs.getString("bezahlstatus"),rs.getString("zahlart"),rs.getString("ersteller")));
                i++;
            }
            //puis dans un tableau
            int nbLignes = i;
            rentals = new String [nbLignes][12];
            for(i=0;i<nbLignes;i++){
                renta b = verleih.get(i);
                rentals[i][0]=String.valueOf(b.ID);
                rentals[i][1]=b.kundenid;
                rentals[i][2]=b.fahrzeugid;
                rentals[i][3]=b.vertragsdatum; 
                rentals[i][4]=b.verleihdatum;
                rentals[i][5]=b.ruckgabedatum;
                rentals[i][6]=b.freikilometer;
                rentals[i][7]=b.preis;
                rentals[i][8]=b.bezahlstatus;
                rentals[i][9]=b.zahlart;
                rentals[i][10]=b.ersteller;

            }
            System.out.println("Vous etes déconnecté mon general");

            return(rentals);


        } catch (SQLException e) {
            e.printStackTrace();
            return(null);
       }

}
    public static String RentalaCar(String ID,String Kundennummer, String Fahrzeugnummer,String Verleihdatum,String Ruckgabedatum,String freikilometer,String Preis, String Bezahlstatus, String Zahlart){
        Connection conn = null; //initialisation de la connexion
        try {
            conn=kernel.ConnectDB.ConnectDB();

            CallableStatement stmt = conn.prepareCall("call CREATE_RENT(?,?,?,?,?,?,?,?,?,?,?)");
            //  set the in param
            stmt.setString(1,ID);
            stmt.setString(2, Kundennummer.replace("'","''"));
            stmt.setString(3, Fahrzeugnummer.replace("'","''"));
            stmt.setString(4, Verleihdatum.replace("'","''"));
            stmt.setString(5, Ruckgabedatum.replace("'","''"));
            stmt.setString(6, freikilometer.replace("'","''"));
            stmt.setString(7, Preis.replace("'","''").replace(",","."));
            stmt.setString(8, Bezahlstatus.replace("'","''"));
            stmt.setString(9, Zahlart.replace("'","''"));
            //set the out param
            int Integer=0;
            stmt.registerOutParameter(10,11);


            ResultSet rs = stmt.executeQuery();

            String result=stmt.getString(10);
            int error=stmt.getInt(11);
            System.out.println("Vous etes déconnecté mon general");
            if(error==1){return ("1");}
            if(error==5){return("5");}
            System.out.println(error+"toto"+result);
            return(result);

        } catch (SQLException e) {
            e.printStackTrace();
            return(null);
       }
}
    public static String updateRental(String ID,String fid,String verleihdatum, String ruckgabedatum,String freikilometer,String preis,String bezahlstatus,String zahlart){
        Connection conn = null; //initialisation de la connexion
        try {
           conn=kernel.ConnectDB.ConnectDB();

            CallableStatement stmt = conn.prepareCall("call UPDATE_RENT(?,?,?,?,?,?,?,?,?)");
            //  set the in param
            stmt.setString(1,ID);
            stmt.setString(2,fid);
            stmt.setString(3, verleihdatum.replace("'","''"));
            stmt.setString(4, ruckgabedatum.replace("'","''"));
            stmt.setString(5, freikilometer.replace("'","''"));
            stmt.setString(6, preis.replace("'","''"));
            stmt.setString(7, bezahlstatus.replace("'","''"));
            stmt.setString(8, zahlart.replace("'","''"));
            System.out.println(stmt);

            //set the out param
            int Integer=0;
          stmt.registerOutParameter(9, 9);


           ResultSet rs = stmt.executeQuery();

            int error=stmt.getInt(9);

            System.out.println("Vous etes déconnecté mon general");
            if(error==1){return ("1");}
            return("lalal");


        } catch (SQLException e) {
            e.printStackTrace();
            return(null);
       }

}


}
